package Proxy;

import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;

import java.lang.reflect.Method;

/**
 * @author xinxing
 * @date 2023/2/6 17:04
 */
public class CglibProxyHandler implements MethodInterceptor {

    /**
     * @param obj 被代理的对象（需要增强的对象）
     * @param method 被拦截的方法（需要增强的方法）
     * @param args 方法入参
     * @param proxy 用于调用原始方法
     * @return
     * @throws Throwable
     */
    @Override
    public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
        System.out.println("发送前...");
        Object invoke = proxy.invokeSuper(obj, args);
        System.out.println("发送后...");
        return invoke;
    }
}
